/*eslint-disable*/

import DataTypeDetect from "./DataTypeDetect";

/**空对象检测函数，如果是空对象，返回true，不是对象，返回undefined
 * @deprecated*/
function emptyObjectDetect(DetectObject) {
    try {
        if (Object.prototype.toString.call(DetectObject) === "[object Object]") {
            let EmptyObject = true;
            for (let det in DetectObject) {
                EmptyObject = false;
                break;
            }
            return EmptyObject;
        } else {
            throw new Error("你传递过来的数据不是对象类型！");
        }
    } catch (e) {
        return undefined;
    }
}

/**空数组检测函数，如果是空数组，返回true，不是数组，返回undefined
 * @deprecated*/
function emptyArrayDetect(DetectArray) {
    try {
        if (Object.prototype.toString.call(DetectArray) === "[object Array]") {
            let EmptyArray = true;
            if (DetectArray.length > 0) EmptyArray = false;
            return EmptyArray;
        } else {
            throw new Error("你传递过来的数据不是对象类型！");
        }
    } catch (e) {
        return undefined;
    }
}

/**数组、对象非空检测。
 * ```
 * 用于检测数组、对象是否不等于空，非空返回true，空的返回false，检测的内容不是数组也不是对象返回undefined
 * @param data : Array 需要检测的数据源
 * @param data : Object
 * @returns boolean|undefined
 * */
function notEmptyDetect(data) {
    let detectValue = undefined;
    if (Object.prototype.toString.call(data) === "[object Array]") {
        if (data.length > 0) {
            detectValue = true;
        } else {
            detectValue = false;
        }
    } else if (Object.prototype.toString.call(data) === "[object Object]") {
        let count = 0;
        for (let num in data) {
            count++;
            break;
        }
        if (count > 0) {
            detectValue = true;
        } else {
            detectValue = false;
        }
    }
    return detectValue;
}

export {emptyObjectDetect, DataTypeDetect, emptyArrayDetect, notEmptyDetect};